package com.wzc.basic.controller;

import com.wzc.basic.util.AjaxResult;
import com.wzc.basic.util.FastDfsUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;


@RestController
@RequestMapping("/fastdfs")
public class FastDfsController {

    /**
     * 上传接口
     * @RequestPart 接收的是文件形式的数据
     * @param file
     * @return
     */
    @PostMapping
    public AjaxResult upload(@RequestPart(value = "file", required = true) MultipartFile file){
        try {

            String originalFilename = file.getOriginalFilename(); // 获取原始文件名
            // 获取文件的后缀 不要.
            String substring = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);
            String path = FastDfsUtils.upload(file.getBytes(), substring); // 调用上传
            return AjaxResult.me().setResultObj(path); // 将path设置为AjaxResult中的 resultObj属性
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.me().setMsg("上传失败！");
        }
    }


    /**
     * @RequestParam 请求体中键值对形式的数据取值方式
     * @param path
     * @return
     */
    @DeleteMapping
    public AjaxResult delete(@RequestParam(value = "path", required = true) String path){
        try {
            String pathTmp = path.substring(1); // 截取分组名及其之后的路径名
            String groupName = pathTmp.substring(0, pathTmp.indexOf("/"));// 截取pathTmp 中索引0到第一个 / (截取的是分组名，含头不含尾)
            String remotePath = pathTmp.substring(pathTmp.indexOf("/") + 1);// 截取第一个 / 后的内容（路径）
            FastDfsUtils.delete(groupName,remotePath); // 调用删除
            return AjaxResult.me();
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.me().setMsg("删除失败！");
        }
    }



}
